<?php

class PaymentConstant {

    const ORDER_TYPE_ACCESSORY = 'ACCESSORY';
    const ORDER_TYPE_CONTENT = 'CONTENT';
    const ORDER_TYPE_SUBSCRIPTION = 'SUBSCRIPTION';
    const RESPONSE_STATUS_OK = 1000;
    //
    const METHOD_CASH = 'CASH';
    const METHOD_ATM = 'ATM';
    const METHOD_TRANSFER = 'TRANSFER';
    const METHOD_SUBSCRIPTION = 'SUBSCRIPTION';
    const METHOD_PAYOO = 'PAYOO';
    const METHOD_SENPAY = 'SENPAY';

    //
    const STATUS_PENDING = 'PENDING';
    const STATUS_ACCEPTED = 'ACCEPTED';
    const STATUS_SHIPPING = 'SHIPPING';
    const STATUS_FINISHED = 'FINISHED';
    const STATUS_CANCEL = 'CANCEL';
    const STATUS_RETURNED = 'RETURNED';
    const STATUS_REFUNDED = 'REFUNDED';
    const STATUS_PROCESSING = 'PROCESSING';

    //
    const ORDER_IN_SHOPPING = 'ORDER_IN_SHOPPING';
    const ORDER_IN_HISTORY = 'ORDER_IN_HISTORY';

    public static function get_payment_methods($type = null) {
        $array = array();
        $lib = Library_Payment_Client::instance();
        if ($lib->allow_payment_method(self::METHOD_CASH)) {
            $array[self::METHOD_CASH] = array('name' => 'Thanh toán tiền mặt khi nhận hàng',
                'description' => 'Chúng tôi sẽ liên lạc với bạn để xác nhận đơn hàng và sau đó chuyển hàng cho người nhận');
        }
        if ($lib->allow_payment_method(self::METHOD_ATM)) {
            $array[self::METHOD_ATM] = array('name' => 'Thẻ ATM đăng ký Internet Banking',
                'description' => 'Thẻ ATM đăng ký Internet Banking');
        }
        if ($lib->allow_payment_method(self::METHOD_TRANSFER)) {
            $array[self::METHOD_TRANSFER] = array('name' => 'Chuyển khoản ngân hàng',
                'description' => 'Chúng tôi sẽ chờ thông tin chuyển khoản của bạn. Sau khi bạn chuyển khoản, chúng tôi sẽ giao hàng cho người nhận');
        }
        if ($lib->allow_payment_method(self::METHOD_PAYOO)) {
            $array[self::METHOD_PAYOO] = array('name' => 'Cổng thanh toán Payoo',
                'description' => 'Bạn sẽ được chuyển sang giao diện của cổng thanh toán Payoo để tiếp tục thanh toán');
        }
        if ($lib->allow_payment_method(self::METHOD_SENPAY)) {
            $array[self::METHOD_SENPAY] = array('name' => 'Cổng thanh toán Senpay',
                'description' => 'Bạn sẽ được chuyển sang giao diện của cổng thanh toán Senpay để tiếp tục thanh toán');
        }
        if ($lib->allow_payment_method(self::METHOD_SUBSCRIPTION) && (empty($type) || $type == self::ORDER_TYPE_CONTENT) ) {
            $array[self::METHOD_SUBSCRIPTION] = array('name' => 'Subscription',
                'description' => 'Bạn phải có subscription');
        }
        return $array;
    }

    public static function get_payment_status($type = null) {
        $array = array();
        $array[self::STATUS_PENDING] = array('name' => 'Chờ xác nhận',
            'description' => 'Chúng tôi sẽ kiểm tra đơn hàng và liên lạc với bạn');
        $array[self::STATUS_ACCEPTED] = array('name' => 'Chờ giao hàng',
            'description' => 'Chúng tôi sẽ liên lạc với bạn để tiến hành giao hàng');
        if ($type != self::ORDER_TYPE_SUBSCRIPTION && $type != self::ORDER_TYPE_CONTENT) {
            $array[self::STATUS_SHIPPING] = array('name' => 'Đang giao hàng',
                'description' => 'Chúng tôi đang giao hàng cho bạn');
        }
        $array[self::STATUS_FINISHED] = array('name' => 'Hoàn tất',
            'description' => 'Đơn hàng đã hoàn tất');
        $array[self::STATUS_CANCEL] = array('name' => 'Hủy bỏ',
            'description' => 'Đơn hàng bị hủy bỏ');
        $array[self::STATUS_RETURNED] = array('name' => 'Trả lại hàng',
            'description' => 'Đơn hàng bị trả lại');
        $array[self::STATUS_REFUNDED] = array('name' => 'Hoàn tiền',
            'description' => 'Đơn hàng đã dược hoàn tiền');
        $array[self::STATUS_PROCESSING] = array('name' => 'Đang xử lý',
            'description' => 'Đơn hàng đang được xử lý');
        return $array;
    }
    
    public static function get_order_types(){
        $array = array();
        $array[self::ORDER_TYPE_ACCESSORY] = array('name'=>'Phụ kiện');
        $array[self::ORDER_TYPE_CONTENT] = array('name'=>'Nội dung số');
        $array[self::ORDER_TYPE_SUBSCRIPTION] = array('name'=>'Subscription');
        return $array;
    }   

}

?>
